Two fundamental components of a GPS signal are a pseudorandom noise code and a carrier. Navigation data are derived from this signal by correlating it with code and carrier replicas generated by the GPS receiver. A code tracking loop attempts to drive the code correlation error, the difference between the receiver generated replica and the received signal, to zero by advancing or retarding the replica code rate. Receiver to satellite range, or pseudorange, is computed from the code phase because the code phase is determined by the time required for the signal to travel from the satellite to the receiver. When the code correlation error is small the receiver is said to be in code lock.
The carrier loop tracks either the carrier frequency or phase by beating a replicated carrier against the received signal to generate an error harmonic. The measured frequency of the error is fed through a filter to form a correction to the carrier replica oscillator. The receiver is said to be in carrier lock when the error harmonic frequency is small, typically less than ten Hertz. Receiver to satellite range rate, or pseudorange rate, is computed from the replicated carrier frequency offset, or Doppler shift, from the nominal carrier frequency. A 50.0 Hertz navigation message superimposed on all GPS signals admits a 180° degree phase ambiguity in the carrier. A frequency locked loop or a phase locked loop implemented as a Costas loop allows tracking with no loss of lock across data bit changes. Both code and carrier tracking loops adjust the phase and frequency of the generated replicas to account for many factors, which include receiver and satellite motion, receiver clock drift, and ionospheric and tropospheric signal delays.
Nonzero tracking errors appear as unmodeled range and range rate errors that corrupt the navigation solution. With navigation updates computed nominally once per second, only the most recent data taken prior to the measurement time are included in measurements provided to the navigation filter. Most of the correlation data taken over the one-second interval are used to keep the tracking loop in lock. This is determined by the tracking loop bandwidth, which, if set too low, will not track the signal through receiver acceleration or turns.
In traditional tracking loops, there is the possibility that the errors in the loops are time correlated because there is a delay in the loops as the loops drive the error signal to zero. Depending on the order of the tracking loop, there may actually be a steady state tracking error when the order of the dynamic motion exceeds the order of the tracking loop. This is commonly called the dynamic stress error. Even with inertial aiding to the tracking loop, the tracking error can be time correlated because of time correlated errors in the aiding data. This possibility has limited tracking performance because the tracking loop measurement errors can manifest themselves as errors in the state vector after processing, which in turn can affect future aiding data and possibly cause the IMU navigation and GPS tracking system to generate a wrong but consistent navigation solution. With normal tracking loops, the GPS measurements used by the navigation filter are deliberately spaced out in time to avoid the unwanted temporal correlations of the tracking loops.
In conventional tracking loops, the measurement noise variance used by the navigation filter is usually estimated from the tracking state and the carrier to noise ratio. There is no guarantee that these values are consistent with the actually realized measurement errors. Hence, a large integration navigation filter may process measurements with an erroneous uncertainty variance of the measurement noise. The navigation filter can be implemented as a Kalman filter.
In conventional tracking loops, the measurement of pseudorange acceleration is not considered because there is no apparent way to obtain a low noise estimate of the pseudorange acceleration from the tracking loops. Conventional tracking loops do not have an ability to determine the pseudorange acceleration. The use of a pseudorange acceleration measurement has many potential benefits in the observability of user clock and IMU error instability. With a pseudorange acceleration measurement, there is a more direct measurement of higher order errors with increased observability. Normally, these errors are observed through dynamic coupling into pseudorange and pseudorange rate measurements. Hence, without the pseudorange acceleration measurements, the observability of clock and IMU instabilities is limited. This limitation can be reduced using highly accurate user clocks and inertial measuring units.
Advanced tracking loop designs have been proposed to alleviate some of the loss of lock and reacquisition problems by tightly coupling IMU data with the carrier and code tracking loops and centralizing the navigation and correlation functions. With the navigation filter essentially forming part of the tracking loop, the computational burden becomes very high because the navigation filter that now has many states must also be updated at tens of Hertz rather than the conventional one Hertz.
With unlimited navigation filter processor throughput, the navigation filter could be operated at extremely high rates with no loss of optimality due to time correlated tracking loop errors. This high rate operation is similar to what has been called a vector delay lock loop. A vector delay lock loop is a method to track all satellites in view simultaneously with one common algorithm. The vector delay lock loop broadens the normal aided and unaided tracking loop design approach to both code and carrier tracking on all in view satellites. The entire algorithm must run at very high processing rates because there is no provision for federated processing. Unfortunately, current processor throughput cannot support Kalman filter rates of several tens of Hertz with the large state vectors required for GPS inertial navigation. Large Kalman filters may be decomposed into one or more federated Kalman filters within a Kalman filter processing architecture. For example, a large Kalman filter can be decomposed into two partitions including a large integration Kalman filter and a high rate optimal prefilter that are more compatible with modern processing speed requirements. The fundamental principle is to decompose the complete formulation into suitable partitions such that the important bandwidths and models are appropriate for each partition. In IMU aided GPS sets designed to date, large navigation filters have not been decomposed into suitable partitions to allow optimal processing of the raw GPS samples with the IMU samples.
Another approach to aiding the code and carrier correlation process is to design a tracking filter that provides estimates of carrier phase tracking error, rate and acceleration, satellite to user range error, and signal amplitude. The filtered estimates, which are processed at a high rate, are provided to the navigation filter where they are processed at a much lower rate to form the navigation solution. An extended Kalman filter of this design has fifth order or higher order dynamics and an associated matrix Riccati equation that must be integrated with each correlator datum. The computational burden is extraordinarily high.
Tightly coupled navigation solutions require estimation of the residual error in real time for computation of carrier phase error and code phase error during carrier demodulation and autocorrelation. Computational requirements of Kalman filter residual estimation suffer from computation complexity. These and other disadvantages are solved or reduced using the invention.